home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_bas / nkbvc11.zip / DEMODLG.CPP < prev    next >
C/C++ Source or Header  |  1996-04-11  |  6KB  |  286 lines

  1. // DemoDlg.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Demo.h"
  6. #include "DemoDlg.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CAboutDlg dialog used for App About
  16.  
  17. class CAboutDlg : public CDialog
  18. {
  19. public:
  20.     CAboutDlg();
  21.  
  22. // Dialog Data
  23.     //{{AFX_DATA(CAboutDlg)
  24.     enum { IDD = IDD_ABOUTBOX };
  25.     //}}AFX_DATA
  26.  
  27.     // ClassWizard generated virtual function overrides
  28.     //{{AFX_VIRTUAL(CAboutDlg)
  29.     protected:
  30.     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  31.     //}}AFX_VIRTUAL
  32.  
  33. // Implementation
  34. protected:
  35.     //{{AFX_MSG(CAboutDlg)
  36.     //}}AFX_MSG
  37.     DECLARE_MESSAGE_MAP()
  38. };
  39.  
  40. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  41. {
  42.     //{{AFX_DATA_INIT(CAboutDlg)
  43.     //}}AFX_DATA_INIT
  44. }
  45.  
  46. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  47. {
  48.     CDialog::DoDataExchange(pDX);
  49.     //{{AFX_DATA_MAP(CAboutDlg)
  50.     //}}AFX_DATA_MAP
  51. }
  52.  
  53. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  54.     //{{AFX_MSG_MAP(CAboutDlg)
  55.         // No message handlers
  56.     //}}AFX_MSG_MAP
  57. END_MESSAGE_MAP()
  58.  
  59. /////////////////////////////////////////////////////////////////////////////
  60. // CDemoDlg dialog
  61.  
  62. CDemoDlg::CDemoDlg(CWnd* pParent /*=NULL*/)
  63.     : CDialog(CDemoDlg::IDD, pParent)
  64. {
  65.     //{{AFX_DATA_INIT(CDemoDlg)
  66.     m_insetbevelbtn = 0;
  67.     m_orientationbtn = 3;
  68.     m_outerbevelbtn = 1;
  69.     //}}AFX_DATA_INIT
  70.     m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  71. }
  72.  
  73. void CDemoDlg::DoDataExchange(CDataExchange* pDX)
  74. {
  75.     CDialog::DoDataExchange(pDX);
  76.     //{{AFX_DATA_MAP(CDemoDlg)
  77.     DDX_Control(pDX, IDC_SLIDER3, m_outerbevel);
  78.     DDX_Control(pDX, IDC_SLIDER2, m_innerbevel);
  79.     DDX_Control(pDX, IDC_SLIDER1, m_border);
  80.     DDX_Control(pDX, IDC_POSLABEL, m_poslabel);
  81.     DDX_Control(pDX, 1011, m_knob);
  82.     DDX_Radio(pDX, IDC_RADIO1, m_insetbevelbtn);
  83.     DDX_Radio(pDX, IDC_RADIO4, m_orientationbtn);
  84.     DDX_Radio(pDX, IDC_RADIO8, m_outerbevelbtn);
  85.     //}}AFX_DATA_MAP
  86. }
  87.  
  88. BEGIN_MESSAGE_MAP(CDemoDlg, CDialog)
  89.     //{{AFX_MSG_MAP(CDemoDlg)
  90.     ON_WM_SYSCOMMAND()
  91.     ON_WM_PAINT()
  92.     ON_WM_QUERYDRAGICON()
  93.     ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
  94.     ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
  95.     ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
  96.     ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
  97.     ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
  98.     ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
  99.     ON_BN_CLICKED(IDC_RADIO7, OnRadio7)
  100.     ON_BN_CLICKED(IDC_RADIO8, OnRadio8)
  101.     ON_BN_CLICKED(IDC_RADIO9, OnRadio9)
  102.     ON_BN_CLICKED(IDC_RADIO10, OnRadio10)
  103.     ON_WM_HSCROLL()
  104.     //}}AFX_MSG_MAP
  105. END_MESSAGE_MAP()
  106.  
  107. /////////////////////////////////////////////////////////////////////////////
  108. // CDemoDlg message handlers
  109.  
  110. BOOL CDemoDlg::OnInitDialog()
  111. {
  112.     CDialog::OnInitDialog();
  113.  
  114.     // Add "About..." menu item to system menu.
  115.  
  116.     // IDM_ABOUTBOX must be in the system command range.
  117.     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  118.     ASSERT(IDM_ABOUTBOX < 0xF000);
  119.  
  120.     CMenu* pSysMenu = GetSystemMenu(FALSE);
  121.     CString strAboutMenu;
  122.     strAboutMenu.LoadString(IDS_ABOUTBOX);
  123.     if (!strAboutMenu.IsEmpty())
  124.     {
  125.         pSysMenu->AppendMenu(MF_SEPARATOR);
  126.         pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  127.     }
  128.  
  129.     SetIcon(m_hIcon, TRUE);            // Set big icon
  130.     SetIcon(m_hIcon, FALSE);        // Set small icon
  131.     
  132.     // TODO: Add extra initialization here
  133.     m_outerbevel.SetRange(0, 10, TRUE);
  134.     m_innerbevel.SetRange(0, 10, TRUE);
  135.     m_border.SetRange(0, 30, TRUE);
  136.  
  137.     m_outerbevel.SetPageSize(1);
  138.     m_innerbevel.SetPageSize(1);
  139.     m_border.SetPageSize(1);
  140.  
  141.     m_outerbevel.SetPos(2);
  142.     m_innerbevel.SetPos(2);
  143.     m_border.SetPos(3);
  144.     
  145.     return TRUE;  // return TRUE  unless you set the focus to a control
  146. }
  147.  
  148. void CDemoDlg::OnSysCommand(UINT nID, LPARAM lParam)
  149. {
  150.     if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  151.     {
  152.         CAboutDlg dlgAbout;
  153.         dlgAbout.DoModal();
  154.     }
  155.     else
  156.     {
  157.         CDialog::OnSysCommand(nID, lParam);
  158.     }
  159. }
  160.  
  161. // If you add a minimize button to your dialog, you will need the code below
  162. //  to draw the icon.  For MFC applications using the document/view model,
  163. //  this is automatically done for you by the framework.
  164.  
  165. void CDemoDlg::OnPaint() 
  166. {
  167.     if (IsIconic())
  168.     {
  169.         CPaintDC dc(this); // device context for painting
  170.  
  171.         SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  172.  
  173.         // Center icon in client rectangle
  174.         int cxIcon = GetSystemMetrics(SM_CXICON);
  175.         int cyIcon = GetSystemMetrics(SM_CYICON);
  176.         CRect rect;
  177.         GetClientRect(&rect);
  178.         int x = (rect.Width() - cxIcon + 1) / 2;
  179.         int y = (rect.Height() - cyIcon + 1) / 2;
  180.  
  181.         // Draw the icon
  182.         dc.DrawIcon(x, y, m_hIcon);
  183.     }
  184.     else
  185.     {
  186.         CDialog::OnPaint();
  187.     }
  188. }
  189.  
  190. HCURSOR CDemoDlg::OnQueryDragIcon()
  191. {
  192.     return (HCURSOR) m_hIcon;
  193. }
  194.  
  195. BEGIN_EVENTSINK_MAP(CDemoDlg, CDialog)
  196.     //{{AFX_EVENTSINK_MAP(CDemoDlg)
  197.     ON_EVENT(CDemoDlg, 1011, 1 /* ValueChanged */, OnValueChangedKnob, VTS_PI2)
  198.     //}}AFX_EVENTSINK_MAP
  199. END_EVENTSINK_MAP()
  200.  
  201. void CDemoDlg::OnValueChangedKnob(short FAR* Pos) 
  202. {
  203.     CString temp;
  204.     temp.Format("%d", *Pos);
  205.     m_poslabel.SetWindowText(temp);
  206. }
  207.  
  208. void CDemoDlg::OnRadio1() 
  209. {
  210.     UpdateData();
  211.     m_knob.SetInnerBevel(m_insetbevelbtn);
  212. }
  213.  
  214. void CDemoDlg::OnRadio2() 
  215. {
  216.     OnRadio1();
  217. }
  218.  
  219. void CDemoDlg::OnRadio3() 
  220. {
  221.     OnRadio1();
  222. }
  223.  
  224. void CDemoDlg::OnRadio4() 
  225. {
  226.     UpdateData();
  227.     m_knob.SetOrientation(m_orientationbtn);
  228. }
  229.  
  230. void CDemoDlg::OnRadio5() 
  231. {
  232.     OnRadio4();
  233. }
  234.  
  235. void CDemoDlg::OnRadio6() 
  236. {
  237.     OnRadio4();
  238. }
  239.  
  240. void CDemoDlg::OnRadio7() 
  241. {
  242.     OnRadio4();
  243. }
  244.  
  245. void CDemoDlg::OnRadio8() 
  246. {
  247.     UpdateData();
  248.     m_knob.SetOuterBevel(m_outerbevelbtn);    
  249. }
  250.  
  251. void CDemoDlg::OnRadio9() 
  252. {
  253.     OnRadio8();
  254. }
  255.  
  256. void CDemoDlg::OnRadio10() 
  257. {
  258.     OnRadio8();
  259. }
  260.  
  261. void CDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
  262. {
  263.     if (SB_ENDSCROLL == nSBCode)
  264.     {
  265.         if (&m_outerbevel == (CSliderCtrl *)pScrollBar)
  266.         {
  267.             m_knob.SetOuterBevelWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  268.         }
  269.         else if (&m_innerbevel == (CSliderCtrl *)pScrollBar)
  270.         {
  271.             m_knob.SetInnerBevelWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  272.         }
  273.         else if (&m_border == (CSliderCtrl *)pScrollBar)
  274.         {
  275.             m_knob.SetBorderWidth(((CSliderCtrl *)pScrollBar)->GetPos());
  276.         }
  277.         else
  278.         {
  279.             m_knob.SetPos(((CSliderCtrl *)pScrollBar)->GetPos());
  280.         }
  281.     }
  282.     
  283.     CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
  284.  
  285. }
  286.